#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
图标转换工具
将PNG图片转换为ICO格式，以便在Windows和macOS上更好地显示
"""

import os
import sys
from PIL import Image

def convert_png_to_ico(png_path, ico_path=None):
    """将PNG图片转换为ICO格式"""
    try:
        # 打开PNG图片
        img = Image.open(png_path)
        
        # 如果没有指定输出路径，使用默认名称
        if ico_path is None:
            ico_path = png_path.rsplit('.', 1)[0] + '.ico'
        
        # 创建多个尺寸的图标（Windows标准）
        sizes = [(16, 16), (32, 32), (48, 48), (64, 64), (128, 128)]
        images = []
        
        for size in sizes:
            # 调整图片尺寸
            resized_img = img.resize(size, Image.Resampling.LANCZOS)
            images.append(resized_img)
        
        # 保存为ICO格式
        images[0].save(ico_path, format='ICO', sizes=[(img.width, img.height) for img in images])
        
        print(f"✅ 成功转换: {png_path} -> {ico_path}")
        print(f"📏 图标尺寸: {', '.join([f'{w}x{h}' for w, h in sizes])}")
        return True
        
    except Exception as e:
        print(f"❌ 转换失败: {e}")
        return False

def main():
    """主函数"""
    print("🖼️  PNG转ICO图标转换工具")
    print("=" * 40)
    
    # 检查是否有icon.png文件
    png_file = "icon.png"
    if not os.path.exists(png_file):
        print(f"❌ 未找到 {png_file} 文件")
        print("请确保 icon.png 文件在当前目录下")
        return
    
    # 转换图标
    success = convert_png_to_ico(png_file, "icon.ico")
    
    if success:
        print("\n🎉 转换完成！")
        print("现在你可以使用 icon.ico 作为软件图标了")
        print("重启程序即可看到新图标效果")
        
        # 检查文件大小
        if os.path.exists("icon.ico"):
            size = os.path.getsize("icon.ico")
            print(f"📁 ICO文件大小: {size} 字节")
    else:
        print("\n💡 转换失败，请检查PNG文件是否有效")

if __name__ == "__main__":
    main() 